﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SISLOG.BusinessEntities;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using System.Data.Common;

namespace SISLOG.DataAccess
{
    public class ProveedorDAO:MasterDAEL, IProveedorDAO
    {
        public List<Proveedor> GetAllFromProveedor()
        {
            var proveedores = dbSisLog.ExecuteSprocAccessor<Proveedor>("GetAllFromProveedor");
            return proveedores.ToList();            
        }

        public List<Proveedor> GetAllFromProveedorByCriterio(string criterio)
        {
            var proveedores = dbSisLog.ExecuteSprocAccessor<Proveedor>("GetAllFromProveedorByCriterio",criterio);
            return proveedores.ToList();         
        }

        public Proveedor GetAllFromProveedorByIdProveedor(int idProveedor)
        {
            var proveedores = dbSisLog.ExecuteSprocAccessor<Proveedor>("GetAllFromProveedorByIdProveedor", idProveedor);
            return proveedores.SingleOrDefault();
        }


        public void RegistrarProveedor(Proveedor proveedor)
        {
            DbCommand comando = dbSisLog.GetStoredProcCommand("RegistrarProveedor");
            dbSisLog.AddInParameter(comando, "idProveedor", System.Data.DbType.Int32, proveedor.idProveedor);
            dbSisLog.AddInParameter(comando, "nombreEmpresa", System.Data.DbType.String, proveedor.nombreEmpresa);
            dbSisLog.AddInParameter(comando, "ruc", System.Data.DbType.String, proveedor.ruc);
            dbSisLog.AddInParameter(comando, "direccion", System.Data.DbType.String, proveedor.direccion);
            dbSisLog.AddInParameter(comando, "telefono", System.Data.DbType.String, proveedor.telefono);
            dbSisLog.AddInParameter(comando, "email", System.Data.DbType.String, proveedor.email);
            dbSisLog.AddInParameter(comando, "representante", System.Data.DbType.String, proveedor.representante);

            dbSisLog.ExecuteNonQuery(comando);
        }

        public List<Proveedor> GetAllFromProveedorByRUC(string ruc)
        {
            var proveedores = dbSisLog.ExecuteSprocAccessor<Proveedor>("GetAllFromProveedorByRUC", ruc);
            return proveedores.ToList();      
        }
    }
}
